package tabla_simbolos;


public class Parametro extends TipoPadre{
	/*Atributos*/
	public enum Modo{variable, valor};
	private String id;
	private int direcc;
	private Modo modo;
	private Variable propsVar;
	private Referencia propsRef;
	private Array propsArray;
	private Registro propsReg;
	private Puntero propsPunt;
	private TipoBasico propsTBas;
	
	/*Constructora*/
	public Parametro(Modo modo, String id, int dir, Variable tipo) {
		this.setModo(modo);
		this.setId(id);
		this.setDirecc(dir);
		this.setPropsVar(tipo);
	}
	
	public Parametro(Modo modo, String id, int dir, Referencia tipo) {
		this.setModo(modo);
		this.setId(id);
		this.setDirecc(dir);
		this.setPropsRef(tipo);
	}
	
	public Parametro(Modo modo, String id, int dir, Array tipo) {
		this.setModo(modo);
		this.setId(id);
		this.setDirecc(dir);
		this.setPropsArray(tipo);
	}
	
	public Parametro(Modo modo, String id, int dir, Registro tipo) {
		this.setModo(modo);
		this.setId(id);
		this.setDirecc(dir);
		this.setPropsReg(tipo);
	}
	
	public Parametro(Modo modo, String id, int dir, Puntero tipo) {
		this.setModo(modo);
		this.setId(id);
		this.setDirecc(dir);
		this.setPropsPunt(tipo);
	}
	public Parametro(Modo modo, String id, int dir, TipoBasico tipo) {
		this.setModo(modo);
		this.setId(id);
		this.setDirecc(dir);
		this.setPropsTBas(tipo);
	}

	/*Get&Set*/
	public void setModo(Modo modo) {this.modo = modo;}
	public Modo getModo() {return modo;}
	public Variable getPropsVar() {return propsVar;}
	public void setPropsVar(Variable propsVar) {this.propsVar = propsVar;}
	public Referencia getPropsRef() {return propsRef;}
	public void setPropsRef(Referencia propsRef) {this.propsRef = propsRef;}
	public Array getPropsArray() {return propsArray;}
	public void setPropsArray(Array propsArray) {this.propsArray = propsArray;}
	public Registro getPropsReg() {return propsReg;}
	public void setPropsReg(Registro propsReg) {this.propsReg = propsReg;}
	public Puntero getPropsPunt() {return propsPunt;}
	public void setPropsPunt(Puntero propsPunt) {this.propsPunt = propsPunt;}
	public void setPropsTBas(TipoBasico tbase) {this.propsTBas=tbase;}
	public TipoBasico getPropsTBas(){return this.propsTBas;}
	public String getId() {return id;}
	public void setId(String id) {this.id = id;}
	public int getDirecc() {return direcc;}
	public void setDirecc(int direcc) {this.direcc = direcc;}

}
